package com.chongchong.system.vo;

import com.google.gson.Gson;
import lombok.Data;

import java.io.Serializable;

/**
 * @author 作者: Ben
 * @date 创建时间: 2020年11月25日 下午2:10:47
 *
 *
 */
@Data
public class SessionDataDetailVO implements Serializable {
	private static final long serialVersionUID = 1L;

	// '会话 id'
	private String id;

	// '会话开始时间'
	private String startTime;

	// '会话结束时间'
	private String endTime;

	// '会话类型',0：正常会话.1(2)：离线留言，3：排队超时
	private String sType;

	// '留言处理时间'(如果该会话是留言)
	private String treatedTime;

	// '会话末级咨询分类'
	private String category;

	// '会话咨询分类明细'
	private String categoryDetail;

	// '满意度值',(100 满 意; 1 不满意);3：(100 满意; 50 一般; 1不满意);
	// 5：(100 非常满意; 75满意; 50一般; 25不满意; 1非常不满意)否则未评价
	private String evaluation;

	// '满意度类型'
	private String evaluationType;

	// '满意度评价内容'
	private String evaluationRemark;

	// '关联会话类型',0：无关联; 1=从机器人转接过来; 2：机器人会话转接人工;
	// 3：历史会话发起; 4：客服间转接; 5：被接管
	private String relatedType;

	// '被关联的会话 id',若是无关联则此字段未定义
	private String relatedId;

	// '会话交互类型',0：客服常会话，1：机器人会话，2：呼叫中心会话 3=推送消息
	private String interaction;

	// '会话关闭原因',参照[接收会话结束通知]中的closeReason
	private String closeReason;

	// '会话来自分流组名',或为空
	private String fromGroup;

	// 会话来自分流组id,或为空
	private String fromGroupId;

	// '会话来自哪个客服'，或为空
	private String fromStaff;

	// '排队开始时间点',若<=0 忽略此字段
	private String inQueueTime;

	// '与上一次来访的时间差',默认一年(360 天),单位毫秒
	private String visitRange;

	// 'VIP 级别', 0=非 VIP用户
	private String vipLevel;

	// '客服 id',<=0 则为机器人
	private String staffId;

	// '客服名字',或为"机器人"
	private String staffName;

	// '访客 id'
	private String userId;

	// '外部 id',由企业提供
	private String foreignId;

	// '访客来源 ip',或为空
	private String fromIp;

	// '来源页',或为空
	private String fromPage;

	// '来源页标题',或为空
	private String fromTitle;

	// '来源类型',Ios：苹果设备; Android:安卓设备; Web:网页版（含H5）; Wx：微信; wx_ma：微信小程序; Wb：微博;
	// Open:消息接口
	private String fromType;

	// '自定义字段',所有自定义字段, 是一个 KV类型的JSON 字段，而如果是级联类型自定义字段值见下述说明。
	private Object[] customFiled;

	public void setCustomFiled(Object[] customFiled) {

		this.customFiled = customFiled;
	}

	public String getCustomFiled() {
		Gson gson = new Gson();
		String json = null;
		if (customFiled != null) {
			json = gson.toJson(customFiled);
		}
		return json;
	}

	// '备注'
	private String description;

	// '转人工类型',机器人会话转成人工会话的触发原因
	private String transferRgType;

	// '是否来自客服转接',0：非转接会话；1：客服转接过来的会话
	private String fromHumanTransfer;

	// '转接来源分流客服名称',转接会话有该字段
	private String transferFromStaffName;

	// '转接来源分流客服组名称',转接会话有该字段
	private String transferFromGroup;

	// '转接来源分流会话备注',转接会话有该字段
	private String transferRemarks;

	// '客服转接来源会话 ID',如果该会话不是客服转接过来的，该值为null，否则值为转接来源会话的 ID
	private String humanTransferSessionId;

	// '会话关联工单 id',会话关联工单 id, 逗号分隔
	private String worksheetIds;

	// '会话回合数'
	private String roundNumber;

	// '客服解决状态',0：未解决，1：已解决，2：解决中
	private String status;

	// '用户解决状态',0：未选择，1：已解决，2未解决
	private String userResolvedStatus;

	// '客服首次响应时长',访客首条消息与客服首次回复消息的时间间隔
	private String firstReplyCost;

	// '客服平均响应时长客服整个会话中的平均响应',客服整个会话中的平均响时长
	private String avgRespDuration;

	// '是否是有效会话',0：无效会话，1：有效会话
	private String isValid;

	// '转接类型',静默转接/人工转接
	private String transferType;

	// '客服消息数',客服在整个会话中的消息总量
	private String staffMessageCount;

	// '用户消息数',用户在整个会话中的消息总量
	private String userMessageCount;

	// '溢出来源',会话溢出的来源客服组
	private String overflowFrom;

	// '告警次数',
	private String alarmTimes;

	// '客服首次响应的时间',
	private String staffFirstReplyTime;

	// '会话置顶时长'
	private String stickDuration;

	// '访客首条消息时间'
	private String clientFirstMessageTime;

	// '客服是否邀评',0：邀评，1：主动评价
	private String isEvaluationInvited;

	// '会话发起方',1：访客，2：客服
	private String beginer;

	// '会话终止方',1：访客，2：客服，3：系统
	private String ender;
}
